package com.example.supermarket_back.utils.upload;

import com.alibaba.fastjson.JSONObject;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;


public class UploadDefault {

    /**
     *
     * @param baseUrl 文件要保存的目录
     * @param file 要保存的文件（MultipartFile）
     * @param type 上传的文件类型（img、video、file）
     * @return 包含文件名（filePath）和文件处理结果信息（msg）的JSONObject对象
     */
    public static JSONObject uploadFile(String baseUrl,MultipartFile file, String type){
        String baseApi=UploadProperties.getBaseApi();
        JSONObject result = new JSONObject();
        JSONObject data = new JSONObject();
        String filePath = new SimpleDateFormat("yyyyMMdd_HHmm").format(new Date())
                +"_"
                +file.getOriginalFilename();

        data.put("url",baseApi+type+"/"+filePath);//返回前端地址
        filePath = baseUrl + filePath;//存储本地地址
        //创建文件
        File f = new File(filePath);
        //判断文件是否存在，存在则不处理,否则保存文件到本地
        String message = "请求成功！";
        try {
            file.transferTo(f);
        }catch(IOException e){
            e.printStackTrace();
            message = "文件上传失败！(可能原因:服务器内存已满)";
        }
        result.put("msg",message);
        result.put("data",data);
        return result;
    }
}
